草庐IT

MySQL LIMIT 和 GROUP BY 与 JOIN

全部标签

python - Pandas Groupby 只取前 N 组

这个问题在这里已经有了答案:Selectmultiplegroupsfrompandasgroupbyobject(5个答案)关闭7年前。我有一些DataFrame,我想按ID分组,e。例如:importpandasaspddf=pd.DataFrame({'item_id':['a','a','b','b','b','c','d'],'user_id':[1,2,1,1,3,1,5]})printdf生成:item_iduser_id0a11a22b13b14b35c16d5[7rowsx2columns]我可以轻松地按id分组:grouped=df.groupby("item_id

python - 从 pandas groupby 对象中选择多个组

我正在试验pandas的groupby特性,特别是gb=df.groupby('model')gb.hist()由于gb有50个组,结果非常困惑,我只想探索前5个组的结果。我找到了如何使用groups或get_group(Howtoaccesspandasgroupbydataframebykey)选择单个组,但没有找到如何直接选择多个组。我能做的最好的是:groups=dict(list(gb))subgroup=pd.concat(groups.values()[:4])subgroup.groupby('model').hist()有没有更直接的方法?

Python 3 Pandas .groupby.过滤器

我正在尝试执行与本文档中的示例非常相似的groupby过滤器:pandasgroupbyfilter>>>df=pd.DataFrame({'A':['foo','bar','foo','bar',...'foo','bar'],...'B':[1,2,3,4,5,6],...'C':[2.0,5.,8.,1.,2.,9.]})>>>grouped=df.groupby('A')>>>grouped.filter(lambdax:x['B'].mean()>3.)ABC1bar25.03bar41.05bar69.0我试图返回一个包含所有3列但只有2行的DataFrame。在按A列分组

python - Pandas Merge (pd.merge) 如何设置索引和join

我有两个pandas数据框:dfLeft和dfRight,以日期作为索引。向左:cusipfactorLdate2012-01-03XXXX4.52012-01-03YYYY6.2....2012-01-04XXXX4.72012-01-04YYYY6.1....dfRight:idc__idfactorRdate2012-01-03XXXX5.02012-01-03YYYY6.0....2012-01-04XXXX5.12012-01-04YYYY6.2两者的形状都接近于(121900,3)我尝试了以下合并:test=pd.merge(dfLeft,dfRight,left_inde

python - Pandas groupby 两列然后获取值的字典

我有一个Pandas数据框:banned_titles=TitleIdRelatedTitleId0899893259818998930850832952813085083当我按如下方式应用groupby时In[84]:banned_titles.groupby('TitleId').groupsOut[84]:{89989:[0,1],95281:[2]}这太近了,但不是我想要的。我想要的是:{89989:[32598,3085083],95281:[3085083]}有办法吗? 最佳答案 试试这个:In[8]:x.groupby

javascript - 为什么 'join' 比正常连接更快?

我见过几个来自不同语言的例子,这些例子明确地证明连接列表(数组)的元素比仅仅连接字符串快很多倍。为什么?在两种操作下都起作用的内部算法是什么?为什么一种比另一种更快?这是我的意思的Python示例:#Thisisslowx='a'x+='b'...x+='z'#Thisisfastx=['a','b',...'z']x=''.join(x) 最佳答案 连接函数中的代码预先知道它被要求连接的所有字符串以及这些字符串的大小,因此它可以在开始操作之前计算最终的字符串长度。因此它只需要为最终字符串分配一次内存,然后它就可以将每个源字符串(和

python - 在 pandas 中是否有类似 GroupBy.get_group 的东西,但有一个可选的默认值?

我有一个DataFramedf,我已经对其进行了“分组”。我正在寻找一个类似于get_group(name)的函数,除了它不是在名称不存在时抛出KeyError,而是返回一个空的DataFrame(或其他一些值),类似于dict.get的工作方式:g=df.groupby('x')#doesn'twork,butwouldbenice:i=g.get_group(1,default=[])#doeswork,butishardtoread:i=g.obj.take(g.indices.get(1,[]),g.axis)是否已经有提供此功能的功能?编辑:在许多方面,GroupBy对象由字

python - pandas groupby 并转换为 json 列表

我有一个像下面这样的Pandas数据框idx,f1,f2,f31,a,a,b2,b,a,c3,a,b,c...87e,e,e我需要将其他列转换为基于idx列的字典列表。所以,最终结果应该是:idx,features1,[{f1:a,f2:a,f3:b},{f1:b,f2:a,f3:c},{f1:a,f2:b,f3:c}]...87,[{f1:e,f2:e,f3:e}]是否可以在pandas中使用groupby做这样的事情? 最佳答案 您可以使用groupby按index然后applyto_json:printdff1f2f3idx1

python - 为什么 os.path.join 会丢弃参数?

我正在学习Python,我发现我的一个脚本有些奇怪。做了一些测试,我发现问题源于这种行为:>>>importos>>>os.path.join('a','b')'a/b'>>>os.path.join('a','/b')'/b'检查documentation,这实际上是函数的设计:os.path.join(path1[,path2[,...]])Joinoneormorepathcomponentsintelligently.Ifanycomponentisanabsolutepath,allpreviouscomponents(onWindows,includingtheprevio

python - NumPy 中的 SQL join 或 R 的 merge() 函数?

是否有一种实现可以让我根据键连接两个数组?说到这里,在NumPy列之一中存储键的规范方法是什么(NumPy没有“id”或“rownames”属性)? 最佳答案 如果您只想使用numpy,可以使用结构化数组和lib.recfunctions.join_by函数(参见http://pyopengl.sourceforge.net/pydoc/numpy.lib.recfunctions.html)。一个小例子:In[1]:importnumpyasnp...:importnumpy.lib.recfunctionsasrfn...:a=